\documentclass[a4paper, 14pt]{extarticle}

% PDF search & cut'n'paste
\usepackage{cmap}
% Better sans-serif fonts
\renewcommand{\rmdefault}{cmr}
\renewcommand{\sfdefault}{ftx}
\renewcommand{\ttdefault}{cmtt}

\usepackage[utf8]{inputenc}
\usepackage[T2A,T3,T1]{fontenc}
\DeclareSymbolFont{T2Aletters}{T2A}{cmr}{m}{it}
\usepackage[english,russian]{babel}
\usepackage[noenc]{tipa}
\usepackage{tipx}
%\usepackage[geometry,weather,misc,clock]{ifsym}
\usepackage{amssymb,amsfonts,textcomp}
\usepackage{color}
\usepackage{hhline}
\usepackage{hyperref}
\usepackage{url}
\usepackage[pdftex]{graphicx}
\usepackage{indentfirst}
\usepackage{listings}
%\usepackage[titles]{tocloft}


\hypersetup{pdftex, colorlinks=true, linkcolor=black, citecolor=black, filecolor=black, urlcolor=blue}
\pagestyle{myheadings}
\graphicspath{{Manual-img/}}

\lstloadlanguages{Java}
\lstset{
  extendedchars=true,
  commentstyle=\color[rgb]{0.24705882,0.49803922,0.37254903},
  stringstyle=\color[rgb]{0,0,1},
  language=Java,
  belowcaptionskip=5pt,
  breaklines=true,
  tabsize=4,
  columns=fixed,
  numbers=left,
  upquote=true,
  identifierstyle=\ttfamily,
  keywordstyle=\bf\ttfamily\color[rgb]{0.5,0,0.3}
}
\renewcommand{\lstlistingname}{Листинг \No}

\title{Инструкция по использованию программы Visual Graph для пользователей и разработчиков}
\date{}
\sloppy

%Document body
\begin{document}
\maketitle
\thispagestyle{empty}
\setcounter{page}{1}
\clearpage\tableofcontents


\clearpage
\phantomsection
\section*{Инструкция по сборке программы для Windows}
\addcontentsline{toc}{section}{Инструкция по сборке программы для Windows}
\begin{enumerate} 
 \item Скачать программу eclipse (\url{http://www.eclipse.org/}). В этом
мануале  использовался eclipse Helios (Build id: 20100617-1415).
 \item Скачать jdk 1.6 (\url{http://java.sun.com/})
 \item Установить jdk.
 \item Установить eclipse.
 \item Запустите eclipse. В начале вам предложат выбрать место для хранения
ваших проектов. Выберите папку, которая вам подходит и нажмите <<{Ok}>>. После 
чего вы увидите следующее окно:
 \begin{center}
  \includegraphics[width=15.85cm,height=8.784cm]{Manual-img1.png}
 \end{center}

 \item Далее пропишем в eclipse путь к jdk.

 \begin{itemize}
  \item Для этого откройте Window -{\textgreater} Preferences -{\textgreater}
Java -{\textgreater} Installed JREs. Жмем кнопку <<Add>>. 
  \item В диалоге выбираем Standart VM и жмем <<Next>>.
  \item Далее выбираем папку с jdk и жмем <<Finish>>. 
  \item После того как она появилась в списке возможных JREs, ставим на ней
галочку и жмем <<Ок>>.
 \end{itemize}

 \item Далее необходимо выкачать проект с SVN.
 \begin{itemize}
  \item Если вы хотите выкачать проект с помощью SVN плагина для eclipse, тогда
воспользуйтесь пунктом 8 и 9.
  \item Если вы хотите выкачать проект другой утилитой, работающей с SVN и
открыть проект в eclipse, тогда переходите к пункту 10. Адрес SVN:
“\url{https://visualgraph.svn.sourceforge.net/svnroot/visualgraph}”. Папка
Visual Graph.
  \item Либо же можно его просто выкачать с помощью браузера. Делается это по
ссылке:
\url{http://visualgraph.svn.sourceforge.net/viewvc/visualgraph/Visual\%20Graph}
.Кликните по ссылке с надписью “Download GNU tarball”. Далее  сохраните архив на
свой компьютер.  После чего разархивируйте его в папку  workspace
eclipse’a. Переходите к пункту 10. 
 \end{itemize}

 \item И так вы хотите поставить SVN плагин в eclipse и с его помощью выкачать
проект. Тогда следуйте инструкциям ниже:

 \begin{itemize}
  \item Help -{\textgreater} Install New Softaware. Нажмите кнопку <<Add>>.
После чего вы увидите диалоговое окно.
  \item Введите поля. Напишите в поле Name ‘svn’, а в поле Location
‘\url{http://subclipse.tigris.org/update\_1.6.x}’. Как показано на картинке.
Затем нажмите <<{Ok}>>.
 \begin{center}
  \includegraphics[scale=1]{add_new_repository.png}
 \end{center}
  \item Далее следуйте инструкциям по установке.
 \end{itemize}

 \item Загружаем проект с SVN.

 \begin{itemize}
  \item Для этого сделайте следующее: File -{\textgreater} Import. Там будет
вкладка SVN. Выберите в ней пункт <<Checkout Projects from SVN>> и нажмите
кнопку <<Next>>.

  \item Далее выберите пункт меню <<Create a new repository location>> и нажмите <<Next>>.

 \begin{center}
  \includegraphics[scale=1]{eclipse_import_project.png}
 \end{center}

  \item Введите в поле <<Url>> следующий адрес:
\url{https://visualgraph.svn.sourceforge.net/svnroot/visualgraph}

  \item Нажмите <<Next>>. После чего вы увидите дерево с проектом Visual Graph.
  \item Кликните на него и нажмите Next.
  \item Далее следуйте инструкциям.
  \item После переходите к пункту 11.
 \end{itemize}

 \item И так вы скачали проект самостоятельно и хотите открыть его в eclipse.

 \begin{itemize}
  \item Для этого вначале перенесите скачанный проект в директорию, которая
служит workspace для ваших проектов в eclipse.
  \item Далее нажмите на File-{\textgreater}Import. Расширьте General и выделите
Existing project into workspace. После чего кликните Next.

 \begin{center}
  \includegraphics[scale=0.8]{eclipse_import_from_existing_project_begin.png}
 \end{center}
 
  \item В следующем в Select root directory кликните Browse и выберите
workspace, в который вы скопировали проект. Если вы все сделали правильно. То
должны увидеть следующую картинку.

 \begin{center}
  \includegraphics[scale=0.8]{eclipse_import_from_existing_project_end.png}
 \end{center}

  \item После чего жмем Finish.
  \item Переходите на пункт 11.
 \end{itemize}

 \item Теперь у нас есть загруженный проект, и можно приступать к сборке.
Делается это несколькими нажатиями мышки. 

 \begin{itemize}
  \item Откройте вкладку (папку) ant в проекте в режиме  Package Explorer.
  \item Кликните правой кнопкой по файлу build.xml и выберите пункт меню
Run As-{\textgreater}Ant Build. 

 \begin{center}
  \includegraphics[scale=0.5]{ant_build.png}
 \end{center}

  \item На консоль выводится информация. В конце будет надпись BUILD SUCCESSFUL.
Как на рисунке.
  \item Поздравляем, сборка окончена.
  \item Зайдите в папку проекта и вы увидите папку release. Это и есть собранная
версия программы готовая к использованию.
 \end{itemize}
\end{enumerate}

\clearpage
\phantomsection
\section*{Соглашение о конфигурационном файле программы}
\addcontentsline{toc}{section}{Соглашение о конфигурационном файле программы}
\subsection*{Общие положения}
\addcontentsline{toc}{subsection}{Общие положения}

\ \ Конфигурационный файл необходим для запоминания пользовательских настроек, которые тот сделал в предыдущей сессии.


\ \ Конфигурационный файл программы находится в папке {data} и называется {config}.{ini}. Файл устроен в виде:


property 1 = value of property 1

property 2 = value of property 2

…

property N = value of property N

\subsection*{Общие свойства}
\addcontentsline{toc}{subsection}{Общие свойства}
\textbf{WindowSizeX}

Ширина окна программы. Указывается в пикселях. Например: 800.

\textbf{WindowSizeY}

Высота окна программы. Указывается в пикселях. Например: 600.

\textbf{WindowPosX}

Расположение верхнего левого угла программы по оси X. Указывается в пикселях. Например: 200.

\textbf{WindowPosY}

Расположение верхнего левого угла программы по оси {Y}. Указывается в пикселях. Например: 200.

\textbf{L\&FStyle}

Стиль оформления пользовательского интерфейса программы. Указывается название. Например: Windows Classic.

\textbf{Debug}

Включение или отключение вывода вспомогательной, предназначенной для более детального рассмотрения работы программы.
Указывается строковой константой true или false.

\subsection*{Замечание}
\addcontentsline{toc}{subsection}{Замечание}
{
\ \ Конфигурационных файл может и не содержать определенных выше полей.}

{
\ \ Конфигурационный файл может содержать и другие поля, определенные
пользователем и предназначенные для каких — либо сторонних плагинов.}

\phantomsection
\section*{Соглашение об узлах скелета графа}
\addcontentsline{toc}{section}{Соглашение об узлах скелета графа}

TODO

\phantomsection

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Инструкция по запуску программы
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section*{Инструкция по запуску программы}
\addcontentsline{toc}{section}{Инструкция по запуску программы}

\bigskip

\begin{enumerate}
	\item {
		Необходима {JVM} версии 1.6 или выше. Для того чтобы проверить вашу версию откройте программу {cmd}.{exe} (Пуск-{\textgreater}Выполнить-{\textgreater}cmd.exe) и набираем {java} –{version}. Если у вас нету {jvm} или версия более ранняя, тогда вам нужно скачать ее с официального сайта (\url{http://java.sun.com/}). После чего вам необходимо установить ее. Если все требования выполнены, то переходите к следующему пункту. Иначе обратитесь в тех. поддержку или поищите информацию по установке {jvm} в Интернете.
	}
	\item {
		Пробуем запустить. Это можно сделать двумя вариантами:
	}
	\begin{enumerate} 
		\item {
			Щелкаем два раза по jar и все.
		}
		\item {
			Второй вариант:
		} 
			\begin{enumerate} 
				\item {Открываем cmd.exe(Пуск-{\textgreater}Выполнить-{\textgreater}cmd.exe)}
				\item {В {cmd}.{exe} переходим в папку с {jar} файлом({Visual} {Graph}.{jar})}
				\item {Набираем{ java -jar {\textquotedbl}Visual Graph.jar{\textquotedbl} }и{ }жмем{ Enter.}}
			\end{enumerate}
	\end{enumerate}
\end{enumerate}


\bigskip

\clearpage
\phantomsection

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Инструкция по написанию тестов
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section*{Инструкция по написанию тестов}
\addcontentsline{toc}{section}{Инструкция по написанию тестов}

\subsection*{Введение}
\addcontentsline{toc}{subsection}{Введение}
{
Этот материал предназначен для разработчиков проекта {Visual} {Graph}. Т.е. он возможно не будет иметь смысла для других проектов.}

\subsection*{Создание теста}
\addcontentsline{toc}{subsection}{Создание теста}
\begin{enumerate}
\item {
Создайте новый пакет, если тест который вы хотите написать логически не укладывается не в один существующий.}
\item {
Добавьте {java} класс в этот пакет.}
\item {
Отнаследуйтесь этим классом от {TestCase}, который лежит в {junit}.}
\item {
Теперь вы должны определить конструктор, который принимает строку. Эту строку вы должны передать классу родителю. Эта строка будет использоваться для нахождения метода в этом классе. Т.е. строка = имя какого-то метода в этом классе.}
\item {
Пишем свой метод, который тестирует какую-то функциональность системы. В этом методы можно использовать класс {Assert}. У него есть много методов для сравнения. Суть заключается в том, что если {assert} сработает то ваш тест пройдет не удачно и вы об этом узнаете. В противном случае все будет хорошо и тест будет считаться пройденным.}
\item {
После того как мы написали тест необходимо его добавить в {Suite} для исполнения. Т.е. вы конечно можете его исполнить и без этого, но тогда вам нужно будет делать это каждый раз руками.}
\end{enumerate}
\subsection*{Добавление теста в Suite}
\addcontentsline{toc}{subsection}{Добавление теста в Suite}
\begin{enumerate}
\item 
Если ваш тест логически не укладывается в уже существующие Suite’ы, тогда создайте новый. Для этого кликните в пакете
AllSuite и создайте новый java класс. Он должен выглядеть так:

\begin{lstlisting}
package AllSuite;

import junit.framework.TestSuite;

public class ModelSuite {

        public static Test suite() {
                TestSuite suite = new TestSuite("Name");
                //$JUnit-BEGIN$
                
                //$JUnit-END$
                return(suite);
        }

}
\end{lstlisting}

\item Между BEGIN и  END вставляйте методы  suite.addTest(new Test(“Name methods”));  Где  Name methods –  это имя
метода в классе  Test,  который мы хотим вызвать.

\item Все готово. Остались детали.
\end{enumerate}
\subsection*{Запуск Suite}
\addcontentsline{toc}{subsection}{Запуск Suite}
\begin{enumerate}
\item {
Нажимаем правой кнопкой мыши по {Suite}, который мы хотим запустить.}
\item {
Выбираем{ }пункт{ }меню{ Run as-{\textgreater}Junit.}}
\item {
После чего он автоматически запустится и у вас появится навигатор {Junit}. В нем вы можете узнать полную информацию о тестах. Какие тесты прошли, а какие завалились.}
\end{enumerate}
\subsection*{Подключение Window Tester Pro}
\addcontentsline{toc}{subsection}{Подключение Window Tester Pro}
{
Для написания тестов для пользовательского интерфейса будет использоваться такой продукт как {Window} {Tester} {Pro}. Данный продукт полностью удовлетворяет нашим требованиям, т.к. легко встраивается в среду разработки {Eclipse} в виде плагина, а его тесты выглядят как {JUnit} тесты. Что дает нам возможность совместить их запуск.}

{
Для подключения {Window} {Tester} {Pro} просто следуйте инструкциям данным на
сайте(\url{http://code.google.com/intl/ru/webtoolkit/tools/wintester/html/index.html})

\subsection*{Заключение}
\addcontentsline{toc}{subsection}{Заключение}
\bigskip

{
Если тесты, которые вы написали, будут использоваться и дальше, то оберните их в {Suite}(как это было показано выше) и добавьте ваш {Suite} в класс {AllSuite}. Это делается аналогично (там уже есть пример как это делается).}

{
Зачем нужна такая иерархия для тестов?}

{
Очень просто. После того, как человек внес изменения в старый код или написал новый, он должен будет запустить всего лишь один класс {AllSuite}. Чтобы посмотреть не нарушается ли работа того, что раньше работало. }

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Инструкция для пользователя
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage
\phantomsection
\section*{Инструкция для пользователя}
\addcontentsline{toc}{section}{Инструкция для пользователя}

\subsection*{Круг задач решаемых данной программой}
\addcontentsline{toc}{subsection}{Круг задач решаемых данной программой}
	Данная программа решает следующий круг задач: визуализация графа на плоскости, визуализация его отдельных частей (с возможностью фильтрации по выбранному признаку), применение различных раскладок для графа, а так же возможность оставлять комментарии к графу.
\subsection*{Элементы пользовательского интерфейса}
\addcontentsline{toc}{subsection}{Элементы пользовательского интерфейса}
	После запуска программы вы увидите следующее окно.
\begin{center}
  \includegraphics[scale=0.45]{vg_main_page.png}
\end{center}

Рассмотрим детально.

\subsubsection*{Меню}
\addcontentsline{toc}{subsubsection}{Меню}
	Вся функциональность данной программы заключена именно здесь.
	Вам доступны следующие пункты: 
	\begin{itemize}
		\item {
			{File} – этот пункт меню содержит функции для работы с файлами и вкладками.
			\begin{itemize}
				\item {
					Open file – открывает файл с графом.
				}
				\item {
					Close tab – закрывает текущую вкладку.
				}
				\item {
					Save project - сохранение проекта.				
				}
				\item {
					Load project - загрузка проекта				
				}
				\item {
					Quit – выход из программы.
				}
			\end{itemize}
		}
		\item {
			Edit – этот пункт меню содержит функции для редактирования текущего графа или его подграфа.
			\begin{itemize}
				\item {
					Animate - включает/отключает анимация раскладки				
				}
				\item {
					Change layout - изменяет текущий раскладчик
				}
				\item {
					Filter - открывает фильтр
				}
				\item {
					Execute layout - перезапуск раскладчика. Применяется к текущей вкладке.	
				}
				\item {
					Search - открывает поисковый модуль
				}
				\item {
					Notepad - открывает блокнот, который позволяет работать с текстовыми файлами. А так же создавать связи между
						графовой моделью и текстовым файлом.
				}
				\item {
					Undo – откатить ваши действия на шаг назад.
				}
				\item {
					Redo – откатить ваши действия на шаг вперед.
				}
			\end{itemize}
		}
		\item {
			Window - этот пункт меню содержит функции для изменения настроек внешнего вида программы		
			\begin{itemize}
				\item{
					L\&F - позволяет выбрать стиль оформления для пользовательского интерфейса.
				}
			\end{itemize}
		}
		\item {
			Help – помощь при работе с программой.
			\begin{itemize}
				\item {
					About - показывает информацию о программе.
				}
			\end{itemize}
		}
	\end{itemize}
	
\subsubsection*{Панель инструментов}
\addcontentsline{toc}{subsubsection}{Панель инструментов}
Это набор часто используемых функций. Они действуют на текущую вкладку.
\begin{itemize}
	\item {
		Zoom In - увеличить масштаб.
	}
	\item {
		Zoom Out - уменьшить масштаб.
	}
\end{itemize}

\subsubsection*{Панель атрибутов}
\addcontentsline{toc}{subsubsection}{Панель атрибутов}
Этот модуль позволяет выбрать атрибуты, которые будут визуализироваться в выбранных пользователем элементах графа в рабочей области.
\begin{center}
	\includegraphics[scale=0.60]{attribute_panel.png}
\end{center}
По центру можно увидеть, что пользователем была выделена часть графа, которая включает в себя вершины
с id = block\_1, block\_3, block\_4; а так же ребра между ними. Ниже, в атрибутной панели, можно увидеть информацию, о выбранной части графа.
Первая колонка {Show} отвечает за визуализацию атрибута (вторая колонка). Т.е. 
если вы нажмете на галочку на этом атрибуте и скажете Apply, то данный атрибут визуализируется прямо в 
текущей вкладке. В третьей колонке показаны все значения которые принимает данный атрибут. 
В четвертой колонке говорится к чему относится данный атрибут(вершина или ребро).

\subsubsection*{Фильтр}
\addcontentsline{toc}{subsubsection}{Фильтр}
{
	Плагин, разработанный для отбора вершин и ребер в выбранной пользователем части графа.

	\begin{center}
		\includegraphics[scale=0.75]{filter.png}
		Скриншот фильтра
	\end{center}
	\textbf{Принцип работы фильтра}\\
	 	В панели условий для вершин можно задать условия, которые будут использоваться для выбора вершин. 
	 	Аналогичная панель есть для ребер.\\
	 	Если условия для вершин(ребер) не заданы, то будут выбраны все вершины (ребра).\\
	 	Включить или отключить фильтр по ребрами и/или по вершинам можно поставив или убрав соответствующий 
	 	флажок.\\
	 \textbf{Пример}\\
	 	Откройте файл Attributes.graphml, который находится в папке example. После чего откройте фильтр.
	 	Это можно сделать через Edit->Filter, либо нажав сочетание клавиш ctrl-F. Включите отображение атрибута weigth у ребер
	 	и отображение color у вершин (это можно сделать используя атрибутную панель см. выше). После чего на экране появится 
	 	что-то похожее на рисунок ниже (только условия в фильтре не будут заданы).
		\begin{center}
			\includegraphics[scale=0.75]{filter_example.png}
		\end{center}
		Ознакомимся подробнее с функциональностью фильтра. Как видно из рисунка в фильтре есть три основных области:
		\begin{itemize}
			\item{
				Панель условий для вершин - данная панель позволяет задавать условия для отбора вершин. 			
			}
			\item{
				Панель условий для ребер - данная панель позволяет задавать условия для отбора ребер. 						
			}
			\item{
				Action - панель для задания действия над отобранными вершинами и ребрами.			
			}
		\end{itemize}
		Теперь задайте условия, как на рисунке и нажмите на кнопку Do. Результатом станет выделение в 
		текущей вкладке вершин и ребер, прошедших условия отбора(см. рис. ниже).\\
		Если в качестве действия выбрано открытие в новой вкладке или смена текущей вкладки, 
		то выделение будет заменено на прозрачность вершин и ребер, не прошедших условия отбора.
		На рисунке ниже показаны результаты.
		\begin{center}
			\includegraphics[scale=0.75]{filter_result.png}
		\end{center}
}

\subsubsection*{Поисковая панель}
\addcontentsline{toc}{subsubsection}{Поисковая панель}
	Плагин, осуществляющий иерархический поиск вершин по заданным условиям во всей Графовой модели, либо в 
	какой-либо из ее частей.
	\begin{center}
		\includegraphics[scale=1]{search.png}
		Задание условий поиска
	\end{center}
	\begin{center}
		\includegraphics[scale=1]{search_result.png}
		Результат поиска по текущему графу
	\end{center}
	Ознакомимся подробнее с функциональностью поисковой панели. Данная панель состоит из двух частей:
	\begin{itemize}
		\item{
			Задание условий поиска\\
			Здесь можно выбрать где искать, т.е. можно ограничиться текущим графом, либо всей графовой моделью.
			Стоит отметить, что если был выбран поиск по текущему графу, то поиск будет осуществлен в данном графе и во всех его
			потомках(и т.д.), т.е. по иерархии. Это одно из отличий данного плагина от фильтра.\\
			А так же можно задать условия по которым искать. Стоит отметить, что в значении достаточно указать подстроку.
		}
		\item{
			Обработка результатов поиска\\
			Данная панель показывает результаты поиска в виде дерева(см. рис. выше). Отмеченные красным крестиком вершины 
			не прошли отбора. Для того чтобы открыть нужные вершины, достаточно щелкнуть правой кнопкой по результирующему дереву и выбрать необходимое действие.\\
			Для того, чтобы было можно ходить по вершинам одного уровня(экономие времени), сделан Level locker. Он позволяет установить
			закрепиться на текущем уровне и при помощи кнопок вверх и вниз перемещаться только по текущему уровню.\\
			Чтобы при открытии выбранной части графа из поискового плагина в вершинах визуализировались необходимые атрибуты 
			сделана панель 3 (см. рис.).
		}
	\end{itemize}

\subsubsection*{Навигатор}
\addcontentsline{toc}{subsubsection}{Навигатор}
	Этот модуль визуализирует графовую модель в виде дерева, с возможностью быстрого 
	переключения между вкладками и визуализирования в рабочей области интересующие 
	пользователя элементы графовой модели.
	\begin{center}
		\includegraphics[scale=1]{navigator.png}
		Скриншот навигатора
	\end{center}
	
\subsubsection*{Блокнот}
\addcontentsline{toc}{subsubsection}{Блокнот}
Данный модуль позволяет загружать вспомогательную информацию для графовой модели, а так
же связывать ее с какой-либо из загруженных графовых моделей. По сути это обычный блакнот,
без возможности редактирования текста. Но с рядом изменений. В частности есть механизм
связывания графовой модели и файла(номер 2 на рис. ниже), содержащего вспомогательную информацию. Рассмотрим
подробнее этот механизм. Файл со вспомогательной информацией должен содержать тэги вида:
\begin{itemize}
	\item{
		<anchor f1 = link\_1/>some string – данный тэг будет относиться к одной строке, идущей
		после него.
	}
	\item{
		<anchor f2 = link\_1> some text</anchor> - данный тэг будет относится ко всему тексту
		заключенному в нем.
	}
\end{itemize}

Стоит отметить, что эти тэги служат только для определения точки в тесте при переходе из
графовой модели к файлу, содержащему вспомогательную информацию. Для того чтобы разрушить связь, пользователю необходимо воспользоваться 
функциональностью 3 на рис.\\

Блокнот имеет хороший механизм поиска, который позволяет задавать настройки поиска, а так
же в понятной форме отображать результаты поиска. Для этого есть как механизм подсветки
результатов, так и мини карта справа, в которой в масштабе отображены все результаты и
человек может с легкостью ходить по ним.
	\begin{center}
		\includegraphics[scale=0.65]{notepad.png}
		Скриншот блокнота
	\end{center}

\subsubsection*{Управление раскладчиками}
\addcontentsline{toc}{subsubsection}{Управление раскладчиками}

Пункт меню Edit -\textgreater Change Layout вызывает окно настроек, в котором можно выбрать один из раскладчиков
графов, присутствующих в программе, а так же указать опции для раскладки для этого раскладчика.

\begin{figure}
  \center{\includegraphics{LayoutManager.png}}
  \caption{Скриншот окна настроек раскладчика}
\end{figure}

\subsubsection*{Открытие файла}
\addcontentsline{toc}{subsubsection}{Открытие файла}
\begin{enumerate}
\item В меню кликните File-\textgreater Open file (Ctrl-O).
\item В появившемся диалоговом окне необходимо выбрать файл с хранящимся в нем графом. Файл должен иметь расширение
graphml или gml,\\

\begin{figure}[h]
  \center\includegraphics[width=0.8\linewidth]{openGraph.png}
  \caption{Открытие графа}
\end{figure}

После того как вы выберите файл кликните на кнопке Open.

\item В случае отсутсвия ошибок в файле (программа оповестит вас, если они имеются) откроется вкладка с новым графом.
\begin{figure}[h]
  \center\includegraphics[width=0.8\linewidth]{openedGraph.png}
  \caption{Открывшийся граф}
\end{figure}

\item Как видно, после открытия файла стали доступны инструменты для редактирования, появилась мини карта и вкладка
с графом (подробное описание этих элементов см. в “Описание элементов интерфейса”). В данном примере видно, что вершина
‘module1’ содержит в себе вложенный граф. Чтобы его открыть просто щелкните два раза на вершине. И у вас появится
соседняя вкладка с вложенным графом.

\item Для того чтобы закрыть текущую вкладку необходимо кликнуть на File-\textgreater Close tab.
\end{enumerate}

\subsubsection*{Загрузка/сохранение проекта}
\addcontentsline{toc}{subsubsection}{Загрузка/сохранение проекта}
Модуль загрузки/сохранения проекта используется для сохранения текущих графов и других файлов, которые используют
плагины, с целью последующей их загрузки для продолжения работы с проектом.

\begin {enumerate}
  \item Загрузка проекта\\
  Выберите в меню File-\textgreater Load project. В появившемся диалоговом окне выбираем файл проекта и нажимаем Open.
В результате программа загружает все сохраненные графы.

 \item Сохранение проекта
    Выберите в меню File-\textgreater Save project. В появившемся диалоговом окне выбираем папку, в которую мы хотим
сохранить проект, вводим название файла и нажимаем Save. В результате программа сохраняет открытые графы.
\end {enumerate}

\textbf{Внимание!} В данном релизе программы строго не рекомендуется сохранять проекты в одной директории. Пожалуйста,
создавайте новый папки при сохранении новых проектов.

\clearpage
\phantomsection
\section*{Описание предопределенных атрибутов}
\addcontentsline{toc}{section}{Описание предопределенных атрибутов}

Атрибуты должны быть определенны в файле согласно спецификации graphML.

В программе предопределены следующие атрибуты:

\begin{itemize}
  \item атрибут <<name>> — атрибут для визуализации по умолчанию. Данный атрибут используется для именования вкладки,
при объявлении его у вложенного графа;
  \item атрибуты вершин:
  \begin{itemize}
    \item атрибут <<color>> — используется для задания цвета вершин, доступны следующие цвета:
    \begin{itemize}
      \item <<white>>,
      \item <<black>>,
      \item <<red>>,
      \item <<green>>,
      \item <<blue>>,
      \item <<orange>>,
      \item <<yellow>>,
      \item <<pink>>,
      \item <<turquoise>>,
      \item <<gray>>,
      \item Так же поддерживается задание RGB кода цвета, используя \#RrGgBb запись.
    \end{itemize}
    \item атрибут <<shape>> — используется для задания формы вершины, доступны следующие формы:
    \begin{itemize}
      \item <<rectangle>>,
      \item <<ellipse>>,
      \item <<doubleEllipse>>,
      \item <<rhombus>>,
      \item <<cylinder>>,
      \item <<triangle>>,
      \item <<hexagon>>,
      \item <<cloud>>.
    \end{itemize}
  \end{itemize}
  \item Атрибуты ребер:
  \begin{itemize}
    \item атрибут <<dashed>> – если значение атрибута true, то ребро будет рисоваться пунктиром.
  \end{itemize}
\end{itemize}

\end{document}
